1.说明
基于UNet的眼底图像血管分割方法:Retina-UNet,项目地址:https://github.com/orobix/retina-unet
2.配置运行环境及依赖:
Ubuntu-16 + CUDA-9.0 + cudnn-7.0 + GPUDriver-390.67 + OpenCV-3.2
Python 2.7
TensorFlow 1.8.0
TensorFlow-GPU 1.8.0 #不安装,则直接用CPU训练
Keras 2.2.0 #原release使用的1.1.0版本keras,若使用keras2.x,则需要修改部分代码
PIL (pillow 3.1.2)
h5py 2.8.0
ConfigParser 3.5.0
Numpy 1.14.5
scikit-learn 0.19.1
pydot 1.2.4
$ pip install xxx --user #安装上面这些依赖项
GraphViz
$ sudo apt-get install graphviz libgraphviz-dev
3.数据集
训练用的是视网膜血管分割经典的数据集DRIVE:http://www.isi.uu.nl/Research/Databases/DRIVE/,其中包含手工分割的ground-truth和mask图像。
下载解压后放于项目根目录下:
DRIVE
│
└───test
| ├───1st_manual
| └───2nd_manual
| └───images
| └───mask
│
└───training
├───1st_manual
└───images
└───mask
4.训练
首先整理数据:
python prepare_datasets_DRIVE.py
执行训练:
配置文件可修改configuration.txt
pytohn run_train.py
|
|
5.测试
6.Debug:
1) Keras2版本不兼容的问题:
from keras.utils.visualize_util import plot
ImportError: No module named 'keras.utils.visualize_util'
From visualize_util
to vis_utils
;
The plot
function was also renamed to plot_model
;
The nb_epoch
argument in fit
has been renamed epochs
;
Update your Model
call to the Keras 2 API: Model(outputs=Tensor("ac..., inputs=Tensor("in...)
model = Model(input=inputs, output=conv7)
;
更新代码或者选用合适的Keras版本。
2) ImportError: No module named tensorflow
使用pip install tensorflow
安装失败且出现importing error,解决方法是在命令后加上--user
。
3) ImportError: Failed to import pydot
. Please install pydot
. For example with pip install pydot
.
4) pydot
failed to call GraphViz. Please install GraphViz https://www.graphviz.org/ and ensure that its executables are in the $PATH. 在~/.bashrc
中添加了PATH后错误仍然出现,不知道问题在哪。。。暂时注释掉retinaNN_training.py
中的#plot_model(model, to_file='./'+name_experiment+'/'+name_experiment + '_model.png') #check how the model looks like
。